home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4076 / 4076.xpi / chrome / addthis.jar / content / Util.js < prev    next >
Encoding:
JavaScript  |  2010-01-06  |  7.0 KB  |  232 lines

  1. var AddThis_Util = {
  2.  
  3.     _prefComponent: null,
  4.  
  5.     dbg : function (text) {
  6.         
  7.     },
  8.     
  9.     navToUrl : function(url) {
  10.         AddThis_Util.dbg("Util.navToUrl: naving to -> " + url);
  11.         
  12.         
  13.         var open_newwindow = AddThis_Util.getIntegerPref("browser.link.open_newwindow", 3);
  14.         switch(open_newwindow)
  15.         {
  16.             case 1: 
  17.                 gBrowser.loadURI(url);
  18.                 break;
  19.             case 2: 
  20.                 gBrowser.contentWindow.open(url);
  21.                 break;
  22.             case 3: 
  23.             default:
  24.                 gBrowser.selectedTab = gBrowser.addTab(url);
  25.                 break;
  26.         }
  27.  
  28.     },
  29.     
  30.     hasClass: function(el,cls) {
  31.         return (el.className.search(new RegExp("(\\s|^)"+cls+"(\\s|$)")) != -1);
  32.     },
  33.     
  34.     addClass: function(el,cls) {
  35.         if (!AddThis_Util.hasClass(el,cls)) el.className += " " + cls;
  36.     },
  37.     
  38.     removeClass: function(el,cls) {
  39.         if (AddThis_Util.hasClass(el,cls)) {
  40.             el.className=el.className.replace(new RegExp('(\\s|^)'+cls+'(\\s|$)'),' ');
  41.         }
  42.     },
  43.    
  44.     slash: function(str)
  45.     {
  46.         if (typeof str == "string") return str.replace(/(['"])/g,'\\$1');
  47.         else return str;
  48.     },
  49.    
  50.     resolveURL : function(baseUrl, relativeUrl)
  51.     {
  52.         try {
  53.             var baseURLObj = this.convertURLToObject(baseUrl);
  54.             return baseURLObj.resolve(relativeUrl);
  55.         } catch(ex) {
  56.             return relativeUrl;
  57.         }
  58.     },
  59.     
  60.     convertURLToObject : function(url)
  61.     {
  62.         var urlObj = Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI);
  63.         urlObj.spec = url; 
  64.         return urlObj;
  65.     },
  66.     
  67.     tumeric: function() {
  68.         var args = [], i;
  69.         for (i=0; i<arguments.length; i++) args.push(arguments[i]);
  70.         var fn = args.shift();
  71.         if(args.length >= fn.length) return fn.apply(this,args);
  72.         return function()
  73.         {
  74.             var argss = [], i;
  75.             for (i=0; i<arguments.length; i++) argss.push(arguments[i]);
  76.             return fn.apply(this, args.concat(argss) ); 
  77.         };
  78.     },
  79.     
  80.     _getPrefComponent: function()
  81.     {
  82.         if (AddThis_Util._prefComponent == null)
  83.         {
  84.             AddThis_Util._prefComponent = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
  85.         }
  86.         return AddThis_Util._prefComponent;
  87.     },
  88.     
  89.     getBooleanPref: function(name, defaultValue)
  90.     {
  91.         try {
  92.             return AddThis_Util._getPrefComponent().getBoolPref(name);
  93.         } catch(e) {
  94.             return defaultValue;
  95.         }
  96.     },
  97.     
  98.     setBooleanPref: function(name, newValue) {
  99.         AddThis_Util.dbg("setBooleanPref: setting " + name + " to " + newValue);
  100.         AddThis_Util._getPrefComponent().setBoolPref(name, newValue);
  101.         AddThis_Util.dbg("setBooleanPref: set");
  102.     },
  103.     
  104.     getIntegerPref: function(name, defaultValue)
  105.     {
  106.         try {
  107.             return AddThis_Util._getPrefComponent().getIntPref(name);
  108.         } catch(e) {
  109.             return defaultValue;
  110.         }
  111.     },
  112.     
  113.     setIntegerPref: function(name, newValue) {
  114.         AddThis_Util.dbg("setIntegerPref: setting " + name + " to " + newValue);
  115.         AddThis_Util._getPrefComponent().setIntPref(name, newValue);
  116.         AddThis_Util.dbg("setIntegerPref: set");
  117.     },
  118.     
  119.     getStringPref: function(name, defaultValue)
  120.     {
  121.         try {
  122.             return AddThis_Util._getPrefComponent().getCharPref(name);
  123.         } catch(e) {
  124.             return defaultValue;
  125.         }
  126.     },
  127.     
  128.     setStringPref: function(name, newValue) {
  129.         AddThis_Util.dbg("setStringPref: setting " + name + " to " + newValue);
  130.         AddThis_Util._getPrefComponent().setCharPref(name, newValue);
  131.         AddThis_Util.dbg("setStringPref: set");
  132.     },
  133.     
  134.     clearPref: function(name)
  135.     {
  136.         try {
  137.             return AddThis_Util._getPrefComponent().clearUserPref(name);
  138.         } catch(e) {
  139.             return false;
  140.         }
  141.     },
  142.     
  143.     
  144.     getActiveServicesObject: function()
  145.     {
  146.         AddThis_Util.dbg("getActiveServicesObject...");
  147.         var i, so = {},
  148.             serviceInclude = AddThis_Util.getStringPref('extensions.addthis.service.personal',''),
  149.             services = serviceInclude.split(',');
  150.         for(i=0; i< services.length; i++)
  151.         {
  152.             if (typeof AddThis_Constants.services[services[i]] !== "undefined") so[services[i]] = true;
  153.         }
  154.         return so;
  155.     },
  156.     
  157.     
  158.     loadServiceDefaults: function()
  159.     {
  160.         AddThis_Util.dbg("loadServiceDefaults...");
  161.         
  162.         var floc = AddThis_Util.getStringPref('general.useragent.locale','en-US'),
  163.             aloc = floc.split('-',2),
  164.             loc = aloc[0].toLowerCase();
  165.             
  166.         if (AddThis_Constants.serviceDefaults[loc] == undefined) loc = 'en';
  167.         AddThis_Util.setStringPref('extensions.addthis.service.personal', AddThis_Constants.serviceDefaults[loc]);
  168.         
  169.     },
  170.     
  171.     png: function()
  172.     {
  173.         var d = new Date(), s = d.getTime(),
  174.             o = AddThis_Util.getStringPref('extensions.addthis.session','');
  175.         if (o=='' || o < (s - 86400000))
  176.         {
  177.             var u = AddThis_Constants.PT_SERVICE +
  178.                     AddThis_Constants.PCO + "-" + AddThis_Constants.EXTENSION_VERSION +
  179.                     "/auc/" + AddThis_Util._generateCuid() + ".gif?_uid=" + AddThis_Util.getCuid() +
  180.                     "&sx=" + AddThis_Util._pngBool(AddThis_Search.isVisible()) +
  181.                     "&bx=" + AddThis_Util._pngBool(AddThis_MainButton.isVisible()) +
  182.                     "&tx=" + AddThis_Util._pngBool(AddThis_Toolbar.isVisible()) +
  183.                     "&ux=" + AddThis_Util._pngBool(AddThis_UrlBar.isVisible()) +
  184.                     "&cx=" + AddThis_Util._pngBool(AddThis_ContextMenu.isVisible());
  185.                     
  186.             AddThis_Util.dbg('png: ' + u);
  187.             AddThis_Util._ajax(u);
  188.             AddThis_Util.setStringPref('extensions.addthis.session',s); 
  189.         }
  190.     },
  191.     
  192.     _pngBool: function(v)
  193.     {
  194.         return (v===true) ? '1' : ((v===false) ? '0' : 'x');
  195.     },
  196.     
  197.     _ajax: function(u)
  198.     {
  199.         var r = new XMLHttpRequest();
  200.         r.onreadystatechange = function() {};
  201.         r.open('GET',u,true);
  202.         r.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE;  
  203.         r.send(null);
  204.     },
  205.     
  206.     getCuid: function() {
  207.         var c = AddThis_Util.getStringPref('extensions.addthis.cuid','');
  208.         if (c=='')
  209.         {
  210.             c = AddThis_Util._generateCuid();
  211.             AddThis_Util.setStringPref('extensions.addthis.cuid',c);
  212.         }
  213.         return c;
  214.     },
  215.     
  216.     _generateCuid: function() { 
  217.         var d = new Date(), z = '00000000',
  218.             lo = Math.floor(Math.random() * (4294967295)); 
  219.             hi = Math.floor(d.getTime() / 1000.0);
  220.             
  221.         lo = lo.toString(16);
  222.         hi = hi.toString(16);
  223.         
  224.         lo = z.substring(0,8-lo.length) + lo;
  225.         hi = z.substring(0,8-hi.length) + hi;
  226.         
  227.         return hi+lo;
  228.     }
  229.   
  230. };
  231.  
  232.